@贝壳儿
3年前 提问
1个回答

如何实现检测apt攻击

在下炳尚
3年前

APT攻击检测思路:

  • 检测伪装进程伪装

    根据进程名称与进程内部名称、以及进程路径的对比,来检测进程是否伪装

  • 异常进程链检测

    根据父子进程来发现异常,比如winword等文档型程序启动mshta进程、Spoolsv启动powershell。

  • 基于加载的DLL文件

    扫描进程中存在的非正常的dll文件,且着重关注一些DLL文件的加载,比如scrobj.dll被加载到regsvr32进程中,则可能存在regsvr32执行sct文件的情况,需要对该进程的行为进行追踪;关注DLL的来源,比如反向dll注入,dll来源于网络。

  • 环境变量检测

    PATH和PATHEXT中写入了可疑路径,从而实现DLL劫持;

    特殊环境变量检测:COR_PROFILER环境变量的设置,检测该环境变量指向的COM组件中是否存在恶意dll文件,从而发现CLR劫持

  • 路径一致性检测

    分别获取命令行路径和真实路径,两者不同说明有路径假冒行为,两个路径分别是WindowTitle(窗口路径)和CommandLine(命令行路径):

  • 操作对象检测

    某些特种木马为了防止重复种植,一般会在操作的Mutants、File、Token等类型的对象上设置其特征。比如ByShell病毒在进程创建了Mutant类型的对象ByShell_Event_Wait

  • 文件签名检测

    检测PE文件签名或DLL文件签名;

  • DLL隐藏检测

    DLL隐藏的方式有两种,一是将DLL从加载顺序链表中断开(检测方式:加载的DLL-卸载的DLL != 目前DLL)、二是修改_LDR_DATA_TABLE_ENTRY结构体中的DLL路径和DLL名称(检测方式:对比DLL路径和映射文件路径)。

  • 远程线程注入检测

    注入前DLL存在于磁盘上,可检测DLL文件是否为恶意文件;还可以检测CreateRemoteThread等函数的调用。

  • 对抗隐写术

    检测执行的命令的文件来源,比如powershell提取并执行图片中嵌入的代码,则检测powershell执行的脚本的来源;

  • 反弹shell检测

    反弹shell的本质是输入输出重定向,因此可通过cmd、powershell等进程的输入来源进行检测。比如cmd的父进程联网。

  • 无文件攻击检测

    • 基于命令行的检测,检测各种下载执行的命令行;

    • 基于父子进程的检测,检测异常进程链;

    • 基于加载或执行的文件来源的检测,检测进程加载或执行的文件是否来源于网络。

  • 持久化攻击检测

    检测敏感注册表项中的命令或扫描其执行的程序、扫描计划任务执行的文件、扫描启动目录中的文件、扫描自启动服务对应的程序等。

  • 系统的安全配置检测

    • 防火墙开启状态检测;

    • UAC开启状态检测;

    • 是否禁止显示隐藏文件;

    • 安全模式是否被禁用或破坏;

    • 控制面板启用状态检测;

    • OFFICE宏安全设置检测

    • CMD、任务管理器、注册表编辑器等工具的启用状态检测;

    • RDP设置检测;